﻿// 5034. 配对.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/5037/

n
 个人参加一场舞会，每个人的性别（男或女）已知。

在开始跳舞之前，需要先给他们进行配对。

初始时，这 n
 个人从左到右排成一队，依次编号为 1∼n
。

其中，第 i
 个人的舞蹈水平为 ai
。

当队列中有男有女时，重复以下过程，进行配对：选出当前队列中彼此相邻且舞蹈水平差异最小的一对男女，让他们组成一对舞伴，并离开队列。

注意：

当满足彼此相邻且舞蹈水平差异最小的男女不止一对时，选择最靠左的一对男女进行配对。
队伍始终都是连续的，当一对男女离开队列后，剩下的人会紧缩队伍，保证队伍的连贯。
请你计算，一共可以产生多少对配对，并按配对的产生顺序，将所有配对依次输出。

输入格式
第一行包含整数 n
。

第二行包含一个长度为 n
 的字符串，字符串中的每个字符要么为 B，要么为 G，其中第 i
 个字符用来表示第 i
 个人的性别，B 表示男，G 表示女。

第三行包含 n
 个整数 a1,a2,…,an
。

输出格式
第一行输出一个整数 k
，表示可以产生的配对数量。

接下来 k
 行，其中第 i
 行输出第 i
 对产生的配对的男女编号，每对编号在输出时，先输出较小编号，再输出较大编号。

数据范围
前 4
 个测试点满足 1≤n≤10
。
所有测试点满足 1≤n≤2×105
，1≤ai≤107
。

输入样例1：
4
BGBG
4 2 4 3
输出样例1：
2
3 4
1 2
输入样例2：
4
BBGG
4 6 1 5
输出样例2：
2
2 3
1 4
输入样例3：
7
BGBGBGB
5 1 2 5 1 2 1
输出样例3：
3
2 3
1 4
5 6
*/
int main()
{
    std::cout << "Hello World!\n";
}

 